import cv2
import math
import numpy as np

img = cv2.imread("./img/cat.png")
# 获取图像的宽高
h,w,d = img.shape

# 获取旋转之后的区间大小
rw = int(math.cos(math.pi / 6) * w + math.sin(math.pi / 6) * h)
rh = int(math.cos(math.pi / 6) * h + math.sin(math.pi / 6) * w)

# 将图像平移到中心位置
M = np.float32([[1,0,(rw - w) // 2 ],[0,1,(rh - h) // 2]])
translate_img = cv2.warpAffine(img,M,(rh,rw))

# getRotationMatrix2D(旋转的中心，旋转的角度，旋转的缩放大小)
M = cv2.getRotationMatrix2D((rh // 2,rw // 2),30,1.)
#
# # 通过旋转得到一张新的图片
rotation_img = cv2.warpAffine(translate_img,M,(rh,rw))
cv2.imshow("rotation_img",rotation_img)
cv2.waitKey(0)